#ifndef __LensFlare_H__
#define __LensFlare_H__

#include "Ogre.h"

using namespace Ogre;


class LensFlare : public Ogre::FrameListener
{
    public:
    LensFlare(Vector3 LightPosition, Camera* camera, SceneManager* SceneMgr, Real scale);
    virtual ~LensFlare();
    void    createLensFlare(Real scale);
    void    update();
    void    setVisible(bool visible);
    void    setLightPosition(Vector3 pos);
    void    setHaloColour(ColourValue color);
    void    setBurstColour(ColourValue color);

    bool frameStarted(const Ogre::FrameEvent &evt);

    protected:
    SceneManager* mSceneMgr;
    Camera*       mCamera;
    ColourValue   mColour;
    SceneNode*    mNode;
    BillboardSet* mHaloSet;
    BillboardSet* mBurstSet;
    Vector3       mLightPosition;
    bool          mHidden;

    int         mId;

    static int nextID;
};
#endif

